#include "udp_server.hpp"
#include "udp_err.hpp"
#include <memory>
#include <stdlib.h>
#include <ctype.h>
using namespace std;
using namespace ns_server;

void usage(string proc)
{
    cout << proc;
    cout << " 使用格式错误！" << endl;
    cout << "真确格式：./server port" << endl;
    
}

// std::string transation(std::string requst)
// {
//     std::string result;
//     char c;
//     for(auto &e : requst)
//     {
//         if(islower(e))
//         {
//             c = toupper(e);
//             result.push_back(c);
//         } 
//         else 
//         {
//             result.push_back(c);
//         }
//     }
//     return result;
// }
bool isPass(const std::string requst)
{
    bool res = true;
    auto pos = requst.find("rm");
    if(pos != std::string::npos) res = false;

    return res;
}

std::string excuteCommand(std::string requst)
{
    //1、安全检查
    if(!isPass(requst))
    {
        return "非法操作！";
    }
    //2、业务处理
    std::string result;
    FILE* fd = popen(requst.c_str(), "r");
    if(fd == nullptr)
    {
        return "None!";
    }
    //3、获取结果
    char line[1024];
    while(fgets(line, sizeof(line), fd))
    {
        result += line;
    }
    pclose(fd);

    return result;

}

int main(int argc, char* argv[])
{
    if(argc != 2)
    {
        usage(argv[0]);
        exit(USE_ERR);
    }
    uint16_t port = atoi(argv[1]);
    unique_ptr<Udp_Server> usvr(new Udp_Server(port));
    usvr->Start();
    // usvr->Recv();
    return 0;
}